VPC コンソールでサイト間(Site-to-Site)VPN 接続の設定ファイルがダウンロードできない場合の対処方法
困っていた内容
VPC コンソールで VPN 設定ファイルのダウンロードを行うと以下のエラーがでます。
You are not authorized to perform this operation.To properly load the Download Configuration screen from the AWS Management Console please ensure your IAM role or user has permission for the following two Amazon EC2 APIs: GetVpnConnectionDeviceTypes and GetVpnConnectionDeviceSampleConfiguration. Encoded authorization failure message: ...(省略)
AmazonVPCFullAccess
ポリシーをアタッチした IAM ユーザー/ロールで実行しているのにダウンロードができません。
今まではダウンロードできていた気がしますが、どう対応すれば設定ファイルがダウンロードできるようになりますか?
どう対応すればいいの?
エラーメッセージに記載の通り、AmazonVPCFullAccess
とは別に以下の 2 つのポリシーが必要です。
- ec2:GetVpnConnectionDeviceTypes
- ec2:GetVpnConnectionDeviceSampleConfiguration
これらのポリシーは 2021-09-21 に新しく追加された API に対応しており、記事の執筆時点(2021-10-01)では個別に許可が必要です。
このエラーは以下の手順で解消できます。
1. IAM コンソールで新しいポリシーを作成する
2. タブを JSON
(ビジュアルエディターは執筆時点で未対応)に変更し、次のポリシーを入力
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ec2:GetVpnConnectionDeviceTypes", "ec2:GetVpnConnectionDeviceSampleConfiguration" ], "Resource": "*" } ] }
3.「次のステップ: タグ」を押す
4.「次のステップ: 確認」を押す
5. ポリシー名を入力する(ここで名前は控えておく)
6.「ポリシーの作成」を押す
7. IAM ユーザー/ロールに 5. で入力したポリシー名を指定しアタッチする
8. 5. のポリシーがアタッチされたことを確認する
ポリシーをアタッチ後、設定ファイルのダウンロードが VPC コンソールでできるようになります。
運用観点でのワンポイント
IAM ポリシーのアクションは基本的に AWS API と同じものがあり、AWS API は日々増え続けています。
そのため、新しい API が追加されたタイミングで既存のポリシーは権限不足となるケースがあります。
多くの場合はエラーメッセージに対応方法が書いてあります。さらにドキュメントを調べたければ、英語版(Latest)の AWS ドキュメント更新履歴を確認することを覚えておきましょう。
また、ビジュアルエディターは新しいアクションに対応していないことがあるため、その場合は JSON で記載しましょう。
参考資料
- GetVpnConnectionDeviceTypes - Amazon Elastic Compute Cloud
- GetVpnConnectionDeviceSampleConfiguration - Amazon Elastic Compute Cloud
- Document history - AWS Site-to-Site VPN
- Getting started - AWS Site-to-Site VPN
Note
To properly load the Download Configuration screen from the AWS Management Console please ensure your IAM role or user has permission for the following two Amazon EC2 APIs: GetVpnConnectionDeviceTypes and GetVpnConnectionDeviceSampleConfiguration.